<?php
/**
 * Created by PhpStorm.
 * User: admin
 * Date: 2019/3/4
 * Time: 22:31
 */

namespace service\excel\order;

use app\storage\model\StorageModel;
use service\excel\Excel;

abstract class AbstractExcel implements Excel
{
    protected $tableData = array();
    protected $storageName;
    protected $phpReader;
    protected $path;
    protected $storageUuid;


    public function checkExcel()
    {
        $keyName = 'file_data';
        $error = $_FILES[$keyName]['error'];
        $this->path = $_FILES['file_data']['tmp_name'];
        vendor('PHPExcel.PHPExcel');
        switch (intval($error)) {
            case 0:
                $this->phpReader = new \PHPExcel_Reader_Excel2007();
                $result = ret_template(true, '配置正确');
                if (!$this->phpReader->canRead($path)) {
                    $this->phpReader = new \PHPExcel_Reader_Excel5();
                    if (!$this->phpReader->canRead($path)) {
                        $result =  ret_template(false, '该文件无法被读取');
                    }
                }
                break;
            case 1://文件超过php.ini中设置中upload_max_filesize选项限制的值
                $result = ret_template(false, '上传文件超过后端设置');
                break;
            case 2://文件的大小超过HTML表单中MAX_FILE_SIZE选项的指定的值
                $result = ret_template(false, '上传文件超过前端设置');
                break;
            case 3://文件只有部分被上传
                $result = ret_template(false, '文件部分上传');
                break;
            case 4://没有文件被上传
                $result = ret_template(false, '文件没有被上传');
                break;
            case 5://上传文件大小为0
                $result = ret_template(false, '上传文件大小为0');
                break;
            case 6://找不到临时文件夹
                $result = ret_template(false, '找不到临时文件夹');
                break;
            case 7://文件写入失败，临时文件夹没有写权限或者不存在
                $result = ret_template(false, '临时文件夹没有权限或者不存在');
                break;
            default://错误类型不明确
                $result = ret_template(false, '未知错误');
        }
        return $result;
    }

}